﻿using System;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
using HK.Reports;
using fs = functionService.DATECOD;

namespace HK.City
{
	/// <summary>
	/// Класс для отображения отчетов по движению товаров и сырья в КафеСити
	/// </summary>
	public static class CityKafeSir
	{
        private static string serverAdres = "192.168.0.200";

		public static void ShowOstOnCityPer(int db, int de)
		{
			city_getOstOnCity(
                "ShowOstOnCityPer", 
                db, de, "1",
                "Остатки по сырью за период\nс " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
		}
		
		public static void PreparePerOstOnCity(int db, int de)
		{
		}
		
		private static void city_getOstOnCity(string nameRep, int db, int de, string type, string reportHeader, string reportFooter){
			string sql = "CALL city.city_getOstOnCity(" + db + ", " + de + ", " + type + ")";

            userHK_grid.FormGRID gr = new userHK_grid.FormGRID(sql, "city", serverAdres, nameRep, "DISABLE", reportHeader, reportFooter);
			gr.ShowDialog();
		}
		
		public static void ShowPrihRawOnCityAll(int db, int de)
		{
			city_getPrihOnCity(
                "ShowPrihRawOnCityAll", 
                db, de, ".", "all", "1",
                "Приход сырья за период\nс " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
		}
		
		public static void ShowPrihRawOnCityDay(int db, int de)
		{
			city_getPrihOnCity(
                "ShowPrihRawOnCityDay", 
                db, de, ".", "day", "1",
                "Приход сырья за период по дням\nс " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
		}
		
		public static void ShowPrihRawOnCityCodd(int db, int de)
		{
			city_getPrihOnCity(
                "ShowPrihRawOnCityCodd", 
                db, de, ".", "day", "2",
                "Приход сырья за период по документам\nс " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
		}

        private static void city_getPrihOnCity(string nameRep, int db, int de, string fltrRaw, string typeGroup, string typeData, 
            string reportHeader, string reportFooter)
		{
			string sql = "CALL `city_getPrihOnCity`(" + db + ", " + de + ", '" + fltrRaw + "', '" + typeGroup + "', '" + typeData + "')";

            userHK_grid.FormGRID gr = new userHK_grid.FormGRID(sql, "city", serverAdres, nameRep, "DISABLE", reportHeader, reportFooter);
			gr.ShowDialog();
		}

        public static void ShowRashTovOnCityAll(int db, int de)
        {
            city_getRashOnCity(
                "ShowRashTovOnCityAll", 
                db, de, ".", ".", "all", "1",
                "Расход товаров за период\nс " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
        }

        public static void ShowRashTovOnCityDay(int db, int de)
        {
            city_getRashOnCity(
                "ShowRashTovOnCityDay", 
                db, de, ".", ".", "day", "1",
                "Расход товаров за период по дням\nс " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
        }

        public static void ShowRashRawOnCityAll(int db, int de)
        {
            city_getRashOnCity(
                "ShowRashRawOnCityAll", 
                db, de, ".", ".", "all", "2",
                "Расход сырья за период\nс " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
        }

        public static void ShowRashRawOnCityDay(int db, int de)
        {
            city_getRashOnCity(
                "ShowRashRawOnCityDay", 
                db, de, ".", ".", "day", "2",
                "Расход сырья за период по дням\nс " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
        }

		public static void ShowRashTovRawOnCityAll(int db, int de)
		{
			city_getRashOnCity(
                "ShowRashTovRawOnCityAll", 
                db, de, ".", ".", "all", "3",
                "Расход товара и сырья по рецептуре за период\nс " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
		}
		
		public static void ShowRashTovRawOnCityDay(int db, int de)
		{
			city_getRashOnCity(
                "ShowRashTovRawOnCityDay", 
                db, de, ".", ".", "day", "3",
                "Расход товара и сырья по рецептуре за период по дням\nс " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
		}

		public static void ShowRashRawTovOnCityAll(int db, int de)
		{
			city_getRashOnCity(
                "ShowRashRawTovOnCityAll", 
                db, de, ".", ".", "all", "4",
                "Расход сырья и товара по рецептуре за период\nс " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
		}
		
		public static void ShowRashRawTovOnCityDay(int db, int de)
		{
			city_getRashOnCity(
                "ShowRashRawTovOnCityDay", 
                db, de, ".", ".", "day", "4",
                "Расход сырья и товара по рецептуре за период по дням\n" + 
                "                              с " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
		}
		
		private static void city_getRashOnCity(string nameRep, int db, int de, 
			string fltrTov, string fltrRaw, string typeGroup, string typeData,
            string reportHeader, string reportFooter)
		{
			string sql = "CALL `city_getRashOnCity`(" + db + ", " + de + ", '" + fltrTov + "', '" + fltrRaw + "', '" + typeGroup + "', '" + typeData + "')";

            userHK_grid.FormGRID gr = new userHK_grid.FormGRID(sql, "city", serverAdres, nameRep, "DISABLE", reportHeader, reportFooter);
			gr.ShowDialog();
		}

        public static void ShowVozvrRawOnCityAll(int db, int de)
        {
            city_getVozvrOnCity(
                "ShowVozvrRawOnCityAll", 
                db, de, "all", "1",
                "Возврат сырья за период\n" + 
                "                              с " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
        }

        public static void ShowVozvrRawOnCityDay(int db, int de)
        {
            city_getVozvrOnCity(
                "ShowVozvrRawOnCityDay",
                db, de, "all", "1",
                "Возврат сырья за период по дням\n" +
                "                              с " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
        }

        public static void ShowVozvrRawOnCityCodd(int db, int de)
        {
            city_getVozvrOnCity(
                "ShowVozvrRawOnCityCodd",
                db, de, "day", "2",
                "Возврат сырья за период по дням\n" +
                "                              с " + fs.cod_to_date(db) + " по " + fs.cod_to_date(de),
                "\n\n\n        Ответственный:________________________");
        }

        private static void city_getVozvrOnCity(string nameRep, int db, int de, string typeGroup, string typeData,
            string reportHeader, string reportFooter)
        {
            string sql = "CALL `city_getVozvrOnCity`(" + db + ", " + de + ", '" + typeGroup + "', '" + typeData + "')";

            userHK_grid.FormGRID gr = new userHK_grid.FormGRID(sql, "city", serverAdres, nameRep, "DISABLE", reportHeader, reportFooter);
            gr.ShowDialog();
        }
	}
}
